package com.gzhryc.pay.adaptation.weixin.msg.transfer;

import java.io.Serializable;
import java.util.List;

public class WXPayTransferMoneyPayRequest implements Serializable {

    private String appid;               //直连商户的appid，必填
    private String out_batch_no;        //商家批次单号，必填
    private String batch_name;          //批次名称，必填
    private String batch_remark;        //批次备注，必填
    private Integer total_amount;       //转账总金额，必填，单位为“分”，转账总金额必须与批次内所有明细转账金额之和保持一致
    private Integer total_num;          //转账总笔数，必填一个转账批次单最多发起三千笔转账，转账总笔数必须与批次内所有明细之和保持一致
    private List<TransferDetailItem> transfer_detail_list;

    public String getAppid() {
        return appid;
    }

    public void setAppid(String appid) {
        this.appid = appid;
    }

    public String getOut_batch_no() {
        return out_batch_no;
    }

    public void setOut_batch_no(String out_batch_no) {
        this.out_batch_no = out_batch_no;
    }

    public String getBatch_name() {
        return batch_name;
    }

    public void setBatch_name(String batch_name) {
        this.batch_name = batch_name;
    }

    public String getBatch_remark() {
        return batch_remark;
    }

    public void setBatch_remark(String batch_remark) {
        this.batch_remark = batch_remark;
    }

    public Integer getTotal_amount() {
        return total_amount;
    }

    public void setTotal_amount(Integer total_amount) {
        this.total_amount = total_amount;
    }

    public Integer getTotal_num() {
        return total_num;
    }

    public void setTotal_num(Integer total_num) {
        this.total_num = total_num;
    }

    public List<TransferDetailItem> getTransfer_detail_list() {
        return transfer_detail_list;
    }

    public void setTransfer_detail_list(List<TransferDetailItem> transfer_detail_list) {
        this.transfer_detail_list = transfer_detail_list;
    }

    public static class TransferDetailItem  implements Serializable {

        private String out_detail_no;       //商家明细单号，必填
        private Integer transfer_amount;    //转账金额，必填
        private String transfer_remark;     //单条转账备注，必填
        private String openid;              //用户在直连商户应用下的用户标示，必填
        /**
         * 1、明细转账金额 >= 2,000，收款用户姓名必填；
         * 2、同一批次转账明细中，收款用户姓名字段需全部填写、或全部不填写；
         * 3、 若传入收款用户姓名，微信支付会校验用户openID与姓名是否一致，并提供电子回单；
         * 4、收款方姓名。采用标准RSA算法，公钥由微信侧提供
         * 5、该字段需进行加密处理，加密方法详见敏感信息加密说明。(提醒：必须在HTTP头中上送Wechatpay-Serial)
         * 6、商户需确保收集用户的姓名信息，以及向微信支付传输用户姓名和账号标识信息做一致性校验已合法征得用户授权
         */
        private String user_name;

        public String getOut_detail_no() {
            return out_detail_no;
        }

        public void setOut_detail_no(String out_detail_no) {
            this.out_detail_no = out_detail_no;
        }

        public Integer getTransfer_amount() {
            return transfer_amount;
        }

        public void setTransfer_amount(Integer transfer_amount) {
            this.transfer_amount = transfer_amount;
        }

        public String getTransfer_remark() {
            return transfer_remark;
        }

        public void setTransfer_remark(String transfer_remark) {
            this.transfer_remark = transfer_remark;
        }

        public String getOpenid() {
            return openid;
        }

        public void setOpenid(String openid) {
            this.openid = openid;
        }

        public String getUser_name() {
            return user_name;
        }

        public void setUser_name(String user_name) {
            this.user_name = user_name;
        }
    }
}
